admin panel tests

jamesperet 9 jaren geleden
bovenliggende
commit
8c35f00996

+ 58 - 0
features/admin_panel.feature

@@ -0,0 +1,58 @@
1
+@admin_panel
2
+Feature: Admin Panel
3
+	In order to administer a website 
4
+	As the owner/admin of the system
5
+	I want to config the website thru an admin panel
6
+	
7
+	Background:
8
+	Given the following blog_post list 
9
+	| title       | content                | published | description         | slug        | 
10
+	| Hello World | Welcome to the website | true      | First Post          | hello_world | 
11
+	| Test 001    | 1 2 3 testing          | true      | Testing the website | test_001    |
12
+
13
+	
14
+	Scenario: Admin navigates to Dashboard 
15
+		Given I am logged in as admin
16
+		When I click in the link "Admin Panel"
17
+		Then I should see "Dashboard" 
18
+		And I should see "2 Posts"
19
+		And I should see "2 Users"
20
+		And I should see "0 Files"
21
+		And I should see "0/0 Messages"
22
+		
23
+	Scenario: Registered user trying to access the Admin Panel
24
+		Given I am logged in as user
25
+		When I go to the admin dashboard
26
+		Then I should see "You dont have permission to access that page!" 
27
+		
28
+	Scenario: Unregistered user trying to access the Admin Panel
29
+		Given I am not logged in
30
+		When I go to the admin dashboard
31
+		Then I should see "You dont have permission to access that page!"
32
+		
33
+	Scenario: Admin navigates to configurations page 
34
+		Given I am logged in as admin
35
+		When I click in the link "Admin Panel"
36
+		And I click in the link "Configurations"
37
+		Then I should see in the field "Tagline" the text "A Ruby on Rails app template"
38
+		
39
+	Scenario: Registered user trying to access the configurations page
40
+		Given I am logged in as user
41
+		When I go to the configurations page
42
+		Then I should see "You dont have permission to access that page!" 
43
+		
44
+	Scenario: Unregistered user trying to access the configurations page
45
+		Given I am not logged in
46
+		When I go to the configurations page
47
+		Then I should see "You dont have permission to access that page!"
48
+		
49
+	@focus	
50
+	Scenario: Change the website name and Tagline
51
+		Given I am logged in as admin
52
+		When I go to the configurations page
53
+		Then I fill in "info_website_name" with "Testing Website Name"
54
+		And I fill in "info_tagline" with "Just another cucumber test"
55
+		And I click in the button "Update Config"
56
+		Then I should see "Testing Website Name"
57
+		And I should see in the field "info_website_name" the text "Testing Website Name"
58
+		And I should see in the field "Tagline" the text "Just another cucumber test"

+ 1 - 1
features/blog.feature

@@ -1,4 +1,4 @@
1
-Feature: Manage Articles 
1
+Feature: Blog Posts
2 2
 	In order to make a blog 
3 3
 	As an author
4 4
 	I want to create and manage blog psots

+ 0 - 1
features/contact_messages.feature

@@ -13,7 +13,6 @@ Feature: Contact Messages
13 13
 		And I click in the button "submit_contact_message"
14 14
 		Then I should see "Message sent!" 
15 15
 	
16
-	@focus
17 16
 	Scenario: Send Contact Message as a user
18 17
 		Given I am logged in as user
19 18
 		And I go to the homepage

+ 4 - 0
features/step_definitions/helper_steps.rb

@@ -0,0 +1,4 @@
1
+Then(/^I should see in the field "(.*?)" the text "(.*?)"$/) do |arg1, arg2|
2
+  value = find_field(arg1).value
3
+  value.should have_content(arg2)
4
+end

+ 7 - 1
features/step_definitions/login_steps.rb

@@ -10,8 +10,14 @@ Then(/^I log in as admin$/) do
10 10
   admin_login
11 11
 end
12 12
 
13
+Given(/^I am not logged in$/) do
14
+  logout(:user)
15
+end
16
+
13 17
 def user_login
14
-  user = FactoryGirl.create(:user)  
18
+  if User.find_by_first_name("John") == nil
19
+    user = FactoryGirl.create(:user)
20
+  end  
15 21
   visit new_user_session_path  
16 22
   fill_in "Email", :with => 'johndoe@website.com' 
17 23
   fill_in "Password", :with => '12345678' 

+ 6 - 0
features/support/paths.rb

@@ -6,6 +6,12 @@ module NavigationHelpers
6 6
   
7 7
     when/the homepage/ 
8 8
       root_path 
9
+      
10
+    when/the admin dashboard/ 
11
+      visit admin_dashboard_path
12
+
13
+    when/the configurations page/ 
14
+      visit admin_config_path
9 15
   
10 16
     when/the blog page/ 
11 17
       visit blog_path